/* eslint-disable */

import { AxiosRequestConfig } from 'axios';
import { request } from '../../utils/request';

export interface PostConfTrackFreePageRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: {
    current: number;
    pageSize: number;
    total: number;
    list: Array<{
      id: number; // 流水号
      trackList: string; // 歌曲列表，逗号分隔
      valid: number; // 是否生效
      operator: string; // 操作人
      remarks: string; // 备注
      insertTime: string; // 插入时间
      modifyTime: string; // 修改时间
    }>;
  };
  traceId: string;
}

/**
 * 分页查询
 */
export async function postConfTrackFreePage(
  data?: any,
  config?: AxiosRequestConfig,
): Promise<PostConfTrackFreePageRes> {
  return request(data, {
    url: '/conf/track/free/page',
    method: 'post',
    ...config,
  });
}

export interface GetConfTrackFreeIdRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: {
    id: number; // 流水号
    trackList: string; // 歌曲列表，逗号分隔
    valid: number; // 是否生效
    operator: string; // 操作人
    remarks: string; // 备注
    insertTime: string; // 插入时间
    modifyTime: string; // 修改时间
  };
  traceId: string;
}

/**
 * 获取免费歌曲策略详情
 */
export async function getConfTrackFreeId(
  id: string | number,
  data?: any,
  config?: AxiosRequestConfig,
): Promise<GetConfTrackFreeIdRes> {
  return request(data, {
    url: `/conf/track/free/${id}`,
    method: 'get',
    ...config,
  });
}

export interface PostConfTrackFreeRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: boolean; // 返回数据
  traceId: string;
}

/**
 * 免费歌曲策略录入
 */
export async function postConfTrackFree(
  data?: any,
  config?: AxiosRequestConfig,
): Promise<PostConfTrackFreeRes> {
  return request(data, {
    url: '/conf/track/free',
    method: 'post',
    ...config,
  });
}

export interface PutConfTrackFreeIdRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: boolean; // 返回数据
  traceId: string;
}

/**
 * 免费歌曲策略更新
 */
export async function putConfTrackFreeId(
  id: string | number,
  data?: any,
  config?: AxiosRequestConfig,
): Promise<PutConfTrackFreeIdRes> {
  return request(data, {
    url: `/conf/track/free/${id}`,
    method: 'put',
    ...config,
  });
}
